#include <math.h>
#include "na.h"
void Tna::step()
{
// double o[1 + maxindex];
 n1=((n0*(1+((bet[0]*(1-exp(-(dt*lam[0]))))/lam[0]+(bet[1]*(1-exp(-(dt*lam[1]))))/lam[1]+bet[2]/lam[2]-(bet[2]*exp(-(dt*lam[2])))/lam[2]+bet[3]/lam[3]-(bet[3]*exp(-(dt*lam[3])))/lam[3]+bet[4]/lam[4]-(bet[4]*exp(-(dt*lam[4])))/lam[4]+bet[5]/lam[5]-(bet[5]*exp(-(dt*lam[5])))/lam[5])/L))/dt-(exp(-(dt*lam[0]))*(n0*bet[0]-L*c0[0]*lam[0])+exp(-(dt*lam[1]))*(n0*bet[1]-L*c0[1]*lam[1])+exp(-(dt*lam[2]))*(n0*bet[2]-L*c0[2]*lam[2])+exp(-(dt*lam[3]))*(n0*bet[3]-L*c0[3]*lam[3])+exp(-(dt*lam[4]))*(n0*bet[4]-L*c0[4]*lam[4])+exp(-(dt*lam[5]))*(n0*bet[5]-L*c0[5]*lam[5]))/L)/(-((-betta+ro+bet[0]+bet[1]+bet[2]+bet[3]+bet[4]+bet[5])/L)+(1+((bet[0]*(1-exp(-(dt*lam[0]))))/lam[0]+(bet[1]*(1-exp(-(dt*lam[1]))))/
 lam[1]+bet[2]/lam[2]-(bet[2]*exp(-(dt*lam[2])))/lam[2]+bet[3]/lam[3]-(bet[3]*exp(-(dt*lam[3])))/lam[3]+bet[4]/lam[4]-(bet[4]*exp(-(dt*lam[4])))/lam[4]+bet[5]/lam[5]-(bet[5]*exp(-(dt*lam[5])))/lam[5])/L)/dt);
c[0]=(exp(-(dt*lam[0]))*pow(lam[0],-2)*(bet[0]*(-n0+n1-dt*n0*lam[0]+exp(dt*lam[0])*(n0-n1+dt*n1*lam[0]))+dt*L*c0[0]*pow(lam[0],2)))/(dt*L);
c[1]=(exp(-(dt*lam[1]))*pow(lam[1],-2)*(bet[1]*(-n0+n1-dt*n0*lam[1]+exp(dt*lam[1])*(n0-n1+dt*n1*lam[1]))+dt*L*c0[1]*pow(lam[1],2)))/(dt*L);
c[2]=(exp(-(dt*lam[2]))*pow(lam[2],-2)*(bet[2]*(-n0+n1-dt*n0*lam[2]+exp(dt*lam[2])*(n0-n1+dt*n1*lam[2]))+dt*L*c0[2]*pow(lam[2],2)))/(dt*L);
c[3]=(exp(-(dt*lam[3]))*pow(lam[3],-2)*(bet[3]*(-n0+n1-dt*n0*lam[3]+exp(dt*lam[3])*(n0-n1+dt*n1*lam[3]))+dt*L*c0[3]*pow(lam[3],2)))/(dt*L);
c[4]=(exp(-(dt*lam[4]))*pow(lam[4],-2)*(bet[4]*(-n0+n1-dt*n0*lam[4]+exp(dt*lam[4])*(n0-n1+dt*n1*lam[4]))+dt*L*c0[4]*pow(lam[4],2)))/(dt*L);
c[5]=(exp(-(dt*lam[5]))*pow(lam[5],-2)*(bet[5]*(-n0+n1-dt*n0*lam[5]+exp(dt*lam[5])*(n0-n1+dt*n1*lam[5]))+dt*L*c0[5]*pow(lam[5],2)))/(dt*L);
 for(int i=0;i<ND;i++)
 {
  c0[i]=c[i];
 }
 n0=n1;
}